The present invention generally relates to a buffer storage system or buffer pool for buffering data which is being tansferred between data devices having different clock rates. Specifically, the buffer pool of the present invention contemplates the use of a common pool of small buffers, each with content addressability, by a plurality of bidirectional accessing ports. Each accessing port is capable of accessing any number of small buffer units which are not already attached to another port. In the particular embodiment disclosed, the total amount of buffer space may be altered by inserting or removing circuit cards on which the individual buffer units are packaged.
Computer systems generally use buffer storage systems to allow the transfer of data between data devices which have different clock rates. For example, when data is being transferred from a high speed device such as a magnetic disk to a slower device such as a magnetic tape, the data being read from the magnetic disk is first stored in a temporary buffer from which it is subsequently transferred to the magnetic tape at the correspondingly slower rate of the magnetic tape device. Prior art data transfer devices and techniques generally employed a plurality of fixed-size double buffers individually assigned to respective data lines or paths. The data paths were generally selected for either information input or information output but not for both. The use of a fixed buffer for each data path insured that each data path would have some buffer space when it was needed but such implementation necessarily required the use of a large buffer space for each data path in the event that a large amount of buffer space would be required. In practice, however, it has been found that the need for a large amount of buffer space by any particular data path is infrequent and that the simultaneous need of a plurality of data paths for extensive amounts of buffer space is also rare. Thus it is clear that in prior art systems using fixed-size double buffers for each input or output data path or port wastes a considerable amount of buffer storge space. Moreover, the amount of space that is wasted is cumulative since most computer systems include a large number of periphal devices. A further disadvantage of the prior art systems is the use of parallel transfer apparatus which necessarily standardizes data field lengths. Other difficulties with prior art systems include the necessity of a special program-controlled address-mapping apparatus and the generally fixed size of the buffer space available to each data port.